#! /usr/local/bin/python3

import sys

# from PyQt5.Qt import *
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QMainWindow
from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QPushButton, QAction, qApp, QLabel, QLineEdit

import HomePageView


class ClassLogin(QMainWindow):

    def __init__(self):
        super().__init__()

        self.init_win()
        self.status = self.statusBar()  # 状态栏
        self.menu_bar = self.menuBar()  # 获取窗体的菜单栏
        self.init_menu()
        self.show_view()

    def init_win(self):
        self.resize(400, 400)  # 大小
        # self.move(300, 300)  # 位置
        self.show_center()  # 显示在屏幕中心
        self.setWindowTitle('Login')  # 标题
        self.show()  # 显示

    # 控制窗口显示在屏幕中间
    def show_center(self):
        qr = self.frameGeometry()  # 获取窗口
        cp = QDesktopWidget().availableGeometry().center()  # 获取屏幕中心点
        qr.moveCenter(cp)  # 显示在屏幕中心
        self.move(qr.topLeft())

    # 菜单栏
    def init_menu(self):

        action_exit = QAction('退出', self)  # 菜单项
        action_exit.setShortcut('Ctrl+Q')  # 快捷键
        action_exit.setStatusTip('退出程序')  # 鼠标悬停，状态栏提示
        action_exit.triggered.connect(qApp.quit)  # 点击事件
        # 菜单类
        menu_item1 = self.menu_bar.addMenu('更多功能')
        # self.menu_bar.setNativeMenuBar(False)
        menu_item1.addAction(action_exit)  # 添加到菜单类

    def show_view(self):
        label_login = QLabel('账号:')

        self.edit_login = QLineEdit()  # 输入框
        self.edit_login.setPlaceholderText('请输入用户名')  # 文本框提示内容
        self.edit_login.setFocus()  # 设置焦点
        self.edit_login.setEchoMode(QLineEdit.Normal)  # 设置输入内容类型
        self.edit_login.setMaxLength(16)  # 设置输入长度

        label_pw = QLabel('密码:')

        self.edit_pw = QLineEdit()
        self.edit_pw.setPlaceholderText('请输入密码')
        self.edit_pw.setEchoMode(QLineEdit.Password)  # 设置输入密码类型
        self.edit_pw.setMaxLength(16)

        button_login = QPushButton('登录')
        button_login.clicked.connect(self.clicked_login)
        button_register = QPushButton('注册')
        button_register.clicked.connect(self.clicked_register)

        # 创建一个QWidget实例，存储所有的布局
        widget = QWidget()
        self.setCentralWidget(widget)

        # 横向布局
        hbox1 = QHBoxLayout()
        hbox1.addStretch(1)  # 伸展因子
        hbox1.addWidget(label_login)
        hbox1.addWidget(self.edit_login)
        hbox1.addStretch(1)

        hbox2 = QHBoxLayout()
        hbox2.addStretch(1)
        hbox2.addWidget(label_pw)
        hbox2.addWidget(self.edit_pw)
        hbox2.addStretch(1)

        hbox3 = QHBoxLayout()
        hbox3.addStretch(1)
        hbox3.addWidget(button_register)
        hbox3.addWidget(button_login)
        hbox3.addStretch(1)

        # 纵向布局
        vbox = QVBoxLayout()
        vbox.addStretch(1)
        vbox.addLayout(hbox1)
        vbox.addLayout(hbox2)
        vbox.addLayout(hbox3)
        vbox.addStretch(2)

        widget.setLayout(vbox)

    def clicked_login(self):
        print('登录', self.edit_login.text(), self.edit_pw.text())
        # 跳转到主界面
        home_page.show()
        self.close()

    def clicked_register(self):
        print('注册', self.edit_login.text(), self.edit_pw.text())


if __name__ == '__main__':
    app = QApplication(sys.argv)
    login = ClassLogin()
    # 主界面
    home_page = HomePageView.ClassHomePage()
    sys.exit(app.exec())
